65 research outputs found

    Preserving Liveness Guarantees from Synchronous Communication to Asynchronous Unstructured Low-Level Languages

    Get PDF
    In the implementation of abstract synchronous communication in asynchronous unstructured low-level languages, e.g. using shared variables, the preservation of safety and especially liveness properties is a hitherto open problem due to inherently different abstraction levels. Our approach to overcome this problem is threefold: First, we present our notion of handshake refinement with which we formally prove the correctness of the implementation relation of a handshake protocol. Second, we verify the soundness of our handshake refinement, i.e., all safety and liveness properties are preserved to the lower level. Third, we apply our handshake refinement to show the correctness of all implementations that realize the abstract synchronous communication with the handshake protocol. To this end, we employ an exemplary language with asynchronous shared variable communication. Our approach is scalable and closes the verification gap between different abstraction levels of communication

    A global agenda for advancing freshwater biodiversity research

    Get PDF
    This manuscript is a contribution of the Alliance for Freshwater Life (www.allianceforfreshwaterlife.org). We thank Nick Bond, Lisa Bossenbroek, Lekima Copeland, Dean Jacobsen, Maria Cecilia Londo?o, David Lopez, Jaime Ricardo Garcia Marquez, Ketlhatlogile Mosepele, Nunia Thomas-Moko, Qiwei Wei and the authors of Living Waters: A Research Agenda for the Biodiversity of Inland and Coastal Waters for their contributions. We also thank Peter Thrall, Ian Harrison and two anonymous referees for their valuable comments that helped improve the manuscript. Open access funding enabled and organised by Projekt DEAL

    Hoare-Style Logic for Unstructured Programs

    No full text
    Enabling Hoare-style reasoning for low-level code is attractive since it opens the way to regain structure and modularity in a domain where structure is essentially absent. The field, however, has not yet arrived at a fully satisfactory solution, in the sense of avoiding restrictions on control flow (important for compiler optimization), controlling access to intermediate program points (important for modularity), and supporting total correctness. Proposals in the literature support some of these properties, but a solution that meets them all is yet to be found. We introduce the novel Hoare-style program logic , which interprets postconditions relative to program points when these are first encountered. The logic can support both partial and total correctness, derive contracts for arbitrary control flow, and allows one to freely choose decomposition strategy during verification while avoiding step-indexed approximations and global invariants. The logic can be instantiated for a variety of concrete instruction set architectures and intermediate languages. The rules of  have been verified in the interactive theorem prover HOL4 and integrated with the toolbox HolBA for semi-automated program verification, making it applicable to the ARMv6 and ARMv8 instruction sets.QC 20200921TrustFullCERCE
    corecore